﻿<%@ Application Language="C#" %>

<script runat="server">
    StatisticsBusiness sb = new StatisticsBusiness();
    void Application_Start(object sender, EventArgs e) 
    {
        // Code that runs on application startup
        Application["online"] = 0;
    }
    
    void Application_End(object sender, EventArgs e) 
    {
        //  Code that runs on application shutdown

    }
        
    void Application_Error(object sender, EventArgs e) 
    { 
        // Code that runs when an unhandled error occurs

    }

    void Session_Start(object sender, EventArgs e) 
    {
        // Code that runs when a new session is started
        string time = DateTime.Now.ToShortDateString();
        Application.UnLock();
        try
        {
            int i = 1;
            Application["online"] = (int)Application["online"] + 1;
            StatisticsEntities se = new StatisticsEntities();
            se._statisticsDate = time;
            se._statisticsVisited = i;
            if (!time.Trim().Equals(sb.GetLastStatistics()._statisticsDate))
            {
                sb.Insert(se);
            }
            else if (time.Trim().Equals(sb.GetLastStatistics()._statisticsDate))
            {
                sb.Update(se);
            }
        }
        catch (Exception ex)
        {
            
            throw new Exception(ex.Message);
        }
        Application.Lock();
    }

    void Session_End(object sender, EventArgs e) 
    {
        Application["online"] = (int)Application["online"] - 1;
        // Code that runs when a session ends. 
        // Note: The Session_End event is raised only when the sessionstate mode
        // is set to InProc in the Web.config file. If session mode is set to StateServer 
        // or SQLServer, the event is not raised.

    }
       
</script>
